package 简单.字符串;

/**
 * 有两种特殊字符：
 * <p>
 * 第一种字符可以用一个比特 0 来表示
 * 第二种字符可以用两个比特(10 或 11)来表示、
 * 给定一个以 0 结尾的二进制数组 bits ，如果最后一个字符必须是一位字符，则返回 true 。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/1-bit-and-2-bit-characters
 */
public class 一比特与二比特字符_717 {

    public static void main(String[] args) {

        int[] bits = new int[]{1, 0, 0};
        System.out.println(isOneBitCharacter(bits));

    }

    /**
     * 碰到1必须往后跳一位
     *
     * @param bits
     * @return
     */
    public static boolean isOneBitCharacter(int[] bits) {
        if (bits[bits.length - 1] == 1) {  //以1结尾必定不是1位字符
            return false;
        }
        for (int cur = 0; cur < bits.length; ) {
            if (bits[cur] == 1) {
                cur += 2;
            } else {
                if (cur == bits.length - 1) {  //如果来到最后一个数，那么符合条件
                    return true;
                }
                cur++;
            }
        }
        return false;
    }

}
